package Logikk;

import Beans.Lop;
import java.io.Serializable;
import java.util.*;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.model.SelectItem;

/**
 * Klasse som inneholder alle løpene
 * @author Gruppe1
 */
@ApplicationScoped
@ManagedBean(name="alleLop")

public class AlleLop implements Serializable{
    ArrayList<Lop> alleLop = new ArrayList<Lop>();

    
    /**
     * Metode som legger alle løpene i en SelectItem liste
     * @return en SelectItemliste med alle løpene
     */
    public SelectItem[] finnAlleLopSelect(){
        SelectItem[]hjelpe = new SelectItem[alleLop.size()];
        for(int i = 0 ; i < alleLop.size() ; i++)
            hjelpe[i] = new SelectItem(alleLop.get(i));
        return hjelpe;
    }
    /**
     * Metode som legger til et løp
     * @param l
     * @return string med regLop_OK eller regLop_ikke_OK
     */
    public String leggTilLop(Lop l){
        if(l!=null && uniqueLop(l)){
            alleLop.add(l); 
            return "regLop_OK";
        }
        return "regLop_ikke_OK";
    }
    private boolean uniqueLop(Lop l){
        if(l==null)return false;
        for(Lop a : alleLop)
            if(a.getBeskrivelse().equals(l.getBeskrivelse()) && a.getDistanse() == l.getDistanse() && a.getLopnavn().equals(l.getLopnavn())) return false;
        return true;
    }

    /**
     * Metode som henter alle løp
     * @return alle løp i en arrayList
     */
    public ArrayList<Lop> getAlleLop() {
        return alleLop;
    }
}
